今日は情報のH25第19問について解説します。
ソフトウェアのテスト方法には、ホワイトボックステスト、ブラックボックステスト、およびこれらの混合であるグレーボックステストがある。これらのうち、前者に関する記述として最も適切なものはどれか。
ア ブラックボックステストでは、すべての場合を網羅した組み合わせテストによっても、すべての組み合わせバグを検出できるとは限らない。
イ ブラックボックステストは、システム仕様の視点からのテストである。
ウ ブラックボックステストは、テスト対象が小さい場合にはホワイトボックステストよりも効果が高い。
エ ホワイトボックステストは、主にテスト段階の後期に行う。
解説
ソフトウェア開発におけるテスト方法に関する問題です。ホワイトボックステストは、すべてのプログラムが意図したとおりに動作しているかを確認するためのプログラム内部のテストです。ブラックボックステストは、システム自体が仕様を満たしているかどうかを確認する機能のテストです。ブラックボックステストでは、入力に対する出力がプログラムの外部仕様に適合しているかを確認します。
それでは早速、各選択肢を見ていきましょう。
選択肢アのブラックボックステストは、プログラムの外部仕様に着目したテスト方法ですので、プログラムの内部構造に依存する「すべての場合を網羅した組合せテスト」を行うことはできません。
よって、この選択肢は×です。
選択肢イ:ブラックボックステストは、プログラムの外部仕様(機能仕様、システム仕様)に着目したテスト手法です。どのような入力をすると、どのような出力になるかを設計仕様に基づいて確認します。
よって、この選択肢は〇です。
選択肢ウ:ホワイトボックステストは、プログラムの内部構造に着目してテストケースを設計するため、すべての分岐を通ったテストケースを作成するなど網羅性の高いテストが可能になる一方で、テスト対象が大きい場合にはテスト工数が大きくなるというデメリットがあります。したがって、テスト対象が小さい場合には、ブラックボックステストよりもホワイトボックステストの方がバグ発見の効果が高くなります。
よって、この選択肢は×です。
選択肢エのホワイトボックステストは、単体テストで用いられるテスト手法ですので、テスト段階の初期に行われます。
よって、この選択肢は×です。
以上から、正解は選択肢イとなります。